#define _CRT_SECURE_NO_WARNINGS 1

#include "SList.h"

void SLTNodeTest1()
{
	SLTNode* List = NULL;
	SLTPushBack(&List, 1);
	SLTPushBack(&List, 2);
	SLTPushBack(&List, 3);
	SLTPushBack(&List, 4);
	SLTPushBack(&List, 5);
	SLTPrintf(List);

	SLTPopBack(&List);
	SLTPrintf(List);
	SLTPopBack(&List);
	SLTPrintf(List);
	SLTPopBack(&List);
	SLTPrintf(List);
	SLTPopBack(&List);
	SLTPrintf(List);
	SLTPopBack(&List);
	SLTPrintf(List);
	//SLTPopBack(&List);
}


void SLTNodeTest2()
{
	SLTNode* List = NULL;
	SLTPushFort(&List, 1);
	SLTPrintf(List);
	SLTPushFort(&List, 2);
	SLTPrintf(List);
	SLTPushFort(&List, 3);
	SLTPrintf(List);
	SLTPushFort(&List, 4);
	SLTPrintf(List);
	SLTPushFort(&List, 5);
	SLTPrintf(List);

	SLTPopFort(&List);
	SLTPrintf(List);
	SLTPopFort(&List);
	SLTPrintf(List);
	SLTPopFort(&List);
	SLTPrintf(List);
	SLTPopFort(&List);
	SLTPrintf(List);
	SLTPopFort(&List);
	SLTPrintf(List);
}


void SLTNodeTest3()
{
	SLTNode* List = NULL;
	SLTPushBack(&List, 1);
	SLTPushBack(&List, 2);
	SLTPushBack(&List, 3);
	SLTPushBack(&List, 4);
	SLTPushBack(&List, 5);
	SLTPrintf(List);


	SLTNode* p=SLTPosFind(List, 1);
	SLTInsertAfter(p, 10);
	SLTPrintf(List);

	SLTPosFort(&List, p);
	SLTPrintf(List);

	p = SLTPosFind(List, 2);
	SLTInsertAfter(p, 20);
	SLTPrintf(List);

	SLTPosFort(&List, p);
	SLTPrintf(List);

	p = SLTPosFind(List, 3);
	SLTInsertAfter(p, 30);
	SLTPrintf(List);

	SLTPosFort(&List, p);
	SLTPrintf(List);

}


void SLTNodeTest4()
{
	SLTNode* List = NULL;
	SLTPushBack(&List, 1);
	SLTPushBack(&List, 2);
	SLTPushBack(&List, 3);
	SLTPushBack(&List, 4);
	SLTPushBack(&List, 5);
	SLTPrintf(List);

	SLTNode* p = SLTPosFind(List, 1);
	SLTInsertPre(&List,p, 10);
	SLTPrintf(List);

	p = SLTPosFind(List, 10);
	SLTInsertPre(&List, p, 20);
	SLTPrintf(List);

}


void SLTNodeTest5()
{
	SLTNode* List = NULL;
	SLTPushBack(&List, 1);
	SLTPushBack(&List, 2);
	SLTPushBack(&List, 3);
	SLTPushBack(&List, 4);
	SLTPushBack(&List, 5);
	SLTPrintf(List);

	SLTRelease(&List);
}


int main()
{
	SLTNodeTest4();

	return 0;
}